From f96418ce1837f0c8eb453e321320988f05b76aef Mon Sep 17 00:00:00 2001 From: "smh22@firebug.cl.cam.ac.uk" Date: Thu, 1 Dec 2005 12:27:29 +0100 Subject: [PATCH] Fix migrate. Signed-off-by: Steven Hand --- tools/python/xen/xend/XendCheckpoint.py | 14 +++++++++++--- tools/python/xen/xend/XendDomain.py | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/python/xen/xend/XendCheckpoint.py b/tools/python/xen/xend/XendCheckpoint.py index 8d80bbc45b..63d5821a00 100644 --- a/tools/python/xen/xend/XendCheckpoint.py +++ b/tools/python/xen/xend/XendCheckpoint.py @@ -40,11 +40,19 @@ def write_exact(fd, buf, errmsg): raise XendError(errmsg) def read_exact(fd, size, errmsg): - buf = os.read(fd, size) - if len(buf) != size: - raise XendError(errmsg) + buf = '' + while size != 0: + str = os.read(fd, size) + if not len(str): + log.error("read_exact: EOF trying to read %d (buf='%s')" % \ + (size, buf)) + raise XendError(errmsg) + size = size - len(str) + buf = buf + str return buf + + def save(fd, dominfo, live): write_exact(fd, SIGNATURE, "could not write guest state file: signature") diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index 650a500e8f..c6fcddef4f 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -397,6 +397,7 @@ class XendDomain: raise XendError("can't connect: %s" % err[1]) sock.send("receive\n") + sock.recv(80) XendCheckpoint.save(sock.fileno(), dominfo, live) -- 2.30.2